Object Syntax

If you were to import the XML shown below either via the ImportXML or ImportXMLFromFile methods this would create the "Expenses" object.

The XML string, although long, is split up into six distinct sections, which are:

Initial Information about the object

Object Control Properties

Instances/Instance Properties

Cases

Decision Trees

Events

<?xml version="1.0"?>
<XRKB>
  <OBJECT name="Expenses" category="Objects" Type="OBJECT">
    <BASECLASS name="Logical_Attribute_Task"/>
    <TIEDTYPE name="LIST"/>
    <PROP name="description" type="str" strLen="100" value="Tutorial expenses claims"/>
    <PROP name="howText" type="str" strLen="100" value=""/>
    <PROP name="multiSelect" type="bool" value="False"/>
    <PROP name="default" type="str" strLen="100" value=""/>
    <PROP name="defaultMode" type="list" listVals="UseDefault,SetDefault" value="(none)"/>
    <PROP name="hasCases" type="bool" value="True"/>
    <PROP name="hasEvents" type="bool" value="True"/>
    <PROP name="hasTree" type="bool" value="True"/>
    <PROP name="knowledgeMode" type="list" listVals="Tree,Cases" value="Tree"/>
    <PROP name="isDynamic" type="bool" value="False"/>
    <PROP name="isPause" type="bool" value="False"/>
    <PROP name="oneWayConstraint" type="bool" value="False"/>
    <PROP name="selectionMode" type="list" listVals="Decision,Pattern Match" value="Decision"/>
    <PROP name="allowBlank" type="bool" value="False"/>
    <PROP name="allowInvalid" type="bool" value="False"/>
    <PROP name="isEnabled" type="bool" value="True"/>
    <PROP name="isVisible" type="bool" value="True"/>
    <PROP name="showInvalid" type="bool" value="True"/>
    <PROP name="sortDirection" type="list" listVals="Ascending,Descending" value="Descending"/>
    <PROP name="sortInvalid" type="bool" value="True"/>
    <PROP name="tiedWebPage" type="str" strLen="255" value=""/>
    <PROP name="hasChildren" type="bool" value="False"/>
    <PROP name="isSelected" type="list" listVals="Yes,No,Knowledge" value="Knowledge"/>
    <PROP name="setChildContexts" type="bool" value="False"/>
    <PROP name="caseDBMode" type="list" listVals="Manual,Live,Cut" value="(none)"/>
    <PROP name="extendInstances" type="bool" value="False"/>
    <PROP name="instanceDBMode" type="list" listVals="Manual,Live,Cut" value="(none)"/>
    <PROP name="HelpJump" type="str" strLen="255" value=""/>
    <CLEAR_INSTANCES/>
    <INSTANCE value="Pass"/>
    <INSTANCE value="Reject"/>
    <CASECOLUMN tiedObject="Grade" TYPE="LIST"/>
    <CASECOLUMN tiedObject="Department" TYPE="LIST"/>
    <CASECOLUMN tiedObject="Hotel" TYPE="LIST"/>
    <CLEAR_CASES/>
    <CASE Grade="Director" Department="" Hotel="" value="Pass"/>
    <CASE Grade="Senior_Manager" Department="Accounts" Hotel="A" value="Reject"/>
    <CASE Grade="Senior_Manager" Department="Accounts" Hotel="B" value="Pass"/>
    <CASE Grade="Senior_Manager" Department="Accounts" Hotel="C" value="Pass"/>
    <CASE Grade="Senior_Manager" Department="Sales" Hotel="A" value="Reject"/>
    <CASE Grade="Senior_Manager" Department="Sales" Hotel="B" value="Reject"/>
    <CASE Grade="Senior_Manager" Department="Sales" Hotel="C" value="Pass"/>
    <CASE Grade="Junior_Manager" Department="Accounts" Hotel="A" value="Reject"/>
    <CASE Grade="Junior_Manager" Department="Accounts" Hotel="B" value="Reject"/>
    <CASE Grade="Junior_Manager" Department="Accounts" Hotel="C" value="Pass"/>
    <CASE Grade="Junior_Manager" Department="Sales" Hotel="A" value="Reject"/>
    <CASE Grade="Junior_Manager" Department="Sales" Hotel="B" value="Reject"/>
    <CASE Grade="Junior_Manager" Department="Sales" Hotel="C" value="Pass"/>
    <CLEAR_TREE/>
    <TREE TYPE="LIST">
        <NODE ATT="Grade" TYPE="LIST">
          <SPLIT>
            <LISTVAL VALUE="Director"/>
            <LEAF VALUE="Pass" LEAF_FREQ="1"/>
          </SPLIT>
          <SPLIT>
            <LISTVAL VALUE="Senior_Manager"/>
            <NODE ATT="Hotel" TYPE="LIST">
              <SPLIT>
                <LISTVAL VALUE="A"/>
                <LEAF VALUE="Reject" LEAF_FREQ="2"/>
              </SPLIT>
              <SPLIT>
                <LISTVAL VALUE="B"/>
                <NODE ATT="Department" TYPE="LIST">
                  <SPLIT>
                    <LISTVAL VALUE="Accounts"/>
                    <LEAF VALUE="Pass" LEAF_FREQ="1"/>
                  </SPLIT>
                  <SPLIT>
                    <LISTVAL VALUE="Sales"/>
                    <LEAF VALUE="Reject" LEAF_FREQ="1"/>
                  </SPLIT>
                </NODE>
              </SPLIT>
              <SPLIT>
                <LISTVAL VALUE="C"/>
                <LEAF VALUE="Pass" LEAF_FREQ="2"/>
              </SPLIT>
            </NODE>
          </SPLIT>
          <SPLIT>
            <LISTVAL VALUE="Junior_Manager"/>
            <NODE ATT="Hotel" TYPE="LIST">
              <SPLIT>
                <LISTVAL VALUE="A"/>
                <LISTVAL VALUE="B"/>
                <LEAF VALUE="Reject" LEAF_FREQ="4"/>
              </SPLIT>
              <SPLIT>
                <LISTVAL VALUE="C"/>
                <LEAF VALUE="Pass" LEAF_FREQ="2"/>
              </SPLIT>
            </NODE>
          </SPLIT>
        </NODE>
    </TREE>
    <EVENT name="OnCapture">
      <CODE>
        @REM This code is executed when the Object is encountered in tree inference
      </CODE>
    </EVENT>
    <EVENT name="OnLeave">
      <CODE>
        @REM This code is executed when the Object has obtained a value in tree inference
      </CODE>
    </EVENT>
    <EVENT name="OnUpdate">
      <CODE>
        @REM This code is executed when the Object selection is changed via a dialog
      </CODE>
    </EVENT>
 </OBJECT>
</XRKB>

Initial Information about the object

Object Control Properties

Instances/Instance Properties

Cases

Decision Trees

Events